home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / QuickTime VR / MacOS / QuickDraw™ 3D 1.0.6F4 SDK / Development / 3DMF parser / 1.0 version / MF3DPC / MFTEXTRD.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-07  |  4.4 KB  |  120 lines  |  [TEXT/dosa]

  1. #ifndef MF3D_READ_H
  2. #define    MF3D_READ_H
  3. /*==============================================================================
  4.  *
  5.  *    File:        MFTEXTRD.H
  6.  *
  7.  *    Function:    Internal Text Read equates and prototypes
  8.  *
  9.  *    Version:    Metafile:    Version 1.0 3DMF files
  10.  *                Package:    Release #2 of this code
  11.  *
  12.  *    Author(s):    Rick Wong (RWW), Duet Development Corp.
  13.  *                John Kelly (JRK), Duet Development Corp.
  14.  *
  15.  *    Copyright:    (c) 1995 by Apple Computer, Inc., all rights reserved.
  16.  *
  17.  *    Change History (most recent first):
  18.  *        FB7_JRK    Pragma macros
  19.  *        Fabio    Changed file name to 8 characters
  20.  *        F3A_RWW    TOC stuff works.
  21.  *        F2K_RWW    Moved a bunch of equates to MFTEXTST.H
  22.  *        F2E_RWW    File created.
  23.  *==============================================================================
  24.  */
  25. #if defined(applec) || defined(__MWERKS__) || defined(THINK_C)
  26. #pragma once
  27. #endif
  28.  
  29. #include "MFTYPES.H"
  30.  
  31. #include "MFINTOBJ.H"
  32. #include "MFOBJTYP.H"
  33.  
  34. /* Arbitrarily large maximum length of an object name.
  35.  * In practice, we know they are much smaller.
  36.  */
  37. #define    kMF3D_MaxObjNameLength    1024
  38.  
  39. /* Amount to grow ObjTable during preprocessing (must be power of 2) */
  40. #define    kMF3D_ObjTableChunk        32
  41.  
  42. /* Temporary buffer for building strings of unknown length */
  43. typedef struct MF3D_BuildString
  44. {    MF3DCStringPtr        str;
  45.     MF3DUns32            pos;
  46. } MF3D_BuildString, *MF3D_BuildStringPtr;
  47.  
  48. /* Amount to grow BuildString buffer (must be power of 2) */
  49. #define    kMF3D_StringBufferChunk        1024
  50.  
  51. /* NumToString conversion */
  52. #define    kMF3D_MaxDigitsInUns32        10
  53.  
  54. /*==============================================================================
  55.  *    Preprocessing functions
  56.  *==============================================================================
  57.  */
  58. char        MF3D_ReadSingleChar(MF3D_FilePtr inMetafilePtr);
  59. MF3DErr        MF3D_ReadUntilCloseParen(MF3D_FilePtr inMetafilePtr);
  60. MF3DErr        MF3D_GetTOCLabels(MF3D_FilePtr inMetafilePtr,
  61.                     MF3DUns32 inNumTocs,
  62.                     MF3DConstBinaryFilePositionPtr inTocLocations,
  63.                     MF3DUns32 *outNumLabels,
  64.                     MF3D_TOCReferencePtr *outTocLabelNames,
  65.                     MF3DUns32 *outRefSeed, MF3DInt32 *outTypeSeed);
  66. MF3DErr        MF3D_ConvertTableLabels(MF3D_FilePtr inMetafilePtr,
  67.                     MF3DUns32 inNumLabels,
  68.                     MF3D_TOCReferencePtr ioTocLabelNames,
  69.                     MF3DUns32 inNumObjects,
  70.                     MF3D_ObjectTableEntryPtr ioObjTable);
  71. MF3DErr        MF3D_PreprocessTextFile(MF3D_FilePtr inMetafilePtr);
  72. MF3DCStringPtr    MF3D_GetRefNameT(MF3D_FilePtr inMetafilePtr,
  73.                         MF3DReferenceID inRefID);
  74. MF3DErr        MF3D_PostprocessTextFile(MF3D_FilePtr inMetafilePtr);
  75.  
  76. /*==============================================================================
  77.  *    Comparison functions
  78.  *==============================================================================
  79.  */
  80. MF3DInt32    MF3D_CompareObjNames(const char *obj1, const char *obj2);
  81. MF3DInt32    MF3D_CompareLabelNames(const char *label1, const char *label2);
  82.  
  83. /*==============================================================================
  84.  *    Scan functions
  85.  *==============================================================================
  86.  */
  87. MF3DErr        MF3D_ScanTextBuffer(MF3D_FilePtr inMetafilePtr,
  88.                     const char *inFormatStr, void *outBuffer);
  89.  
  90. MF3DErr        MF3D_SkipWhitespace(MF3D_FilePtr inMetafilePtr);
  91. MF3DErr        MF3D_ReadOpenParen(MF3D_FilePtr inMetafilePtr);
  92. MF3DErr        MF3D_SkipText(MF3D_FilePtr inMetafilePtr);
  93. MF3DErr        MF3D_ReadObjectStuff(MF3D_FilePtr inMetafilePtr,
  94.                     MF3D_ObjStuffPtr *outObjectStuffPtr,
  95.                     MF3DObjType *outObjectType);
  96. MF3DErr        MF3D_ReadTextString(MF3D_FilePtr inMetafilePtr,
  97.                     MF3DCStringPtr *outStringPtr);
  98. MF3DErr        MF3D_ReadTextLabel(MF3D_FilePtr inMetafilePtr,
  99.                     MF3DCStringPtr *outStringPtr);
  100.  
  101. /*==============================================================================
  102.  *    BuildString functions
  103.  *==============================================================================
  104.  */
  105. MF3DErr        MF3D_BuildString_New(MF3D_BuildString *outStringPtr);
  106. MF3DErr        MF3D_BuildString_AddChar(MF3D_BuildString *ioStringPtr,
  107.                     char inAddChar);
  108. MF3DErr        MF3D_BuildString_EndString(MF3D_BuildString *ioStringPtr);
  109. MF3DErr        MF3D_BuildString_Delete(MF3D_BuildString *ioStringPtr);
  110.  
  111. /*==============================================================================
  112.  *    Conversion functions
  113.  *==============================================================================
  114.  */
  115. void        MF3D_NumToString(MF3DUns32 inNumber,
  116.                     MF3DCStringPtr outString);
  117. MF3DUns8    MF3D_TextToHex(char inChar);
  118.  
  119. #endif
  120.